﻿using System.Collections.Generic;

namespace SharpTag.ID3
{
    /// <summary>
    /// Interface representing a Footer in a Tag.
    /// </summary>
    public interface ITagFooter : IPreparable, IModifiable
    {
        /// <summary>
        /// Gets the Identifier of the Footer.
        /// </summary>
        string Identifier
        {
            get;
            set;
        }

        /// <summary>
        /// Gets the Version of the Footer.
        /// </summary>
        double Version
        {
            get;
            set;
        }

        /// <summary>
        /// Gets the Size of the Footer.
        /// </summary>
        long Size
        {
            get;
            set;
        }

        /// <summary>
        /// Gets a list of <see cref="TagHeaderFlag"/> objects.
        /// </summary>
        List<TagHeaderFlag> Flags
        {
            get;
            set;
        }

        /// <summary>
        /// Parses the raw footer data into the appropriate properties.
        /// </summary>
        /// <param name="footerBytes">A byte array containing the raw footer data.</param>
        void ParseFooterData(byte[] footerBytes);
    }
}
